首页 文章 精选 留言 我的

精选列表

搜索[伪集群],共10000篇文章
优秀的个人博客,低调大师

Vitess 4.0 发布,MySQL 数据库集群水平扩展系统

Vitess 4.0 发布了。Vitess 是一个分布式 MySQL 工具集,它可以自动分片存储 MySQL 数据表,将单个 SQL 查询改写为分布式发送到多个 MySQL Server 上,支持行缓存(比 MySQL 本身缓存效率高)与复制容错等。 此版本主要新特性包括: 改进 SQL 查询支持 支持的 MySQL 语法的覆盖范围有了不小的进步,例如现在可以跨分片边界插入。 还支持更广泛的 SELECT 语句,包括对诸如 COUNT(DISTINCT …)不同聚合查询的支持。也可以通过 ALTER VSCHEMASQL 修改 Vitess 本身。 现在也已经开始使用常见的应用和框架测试 Vitess,并向测试套件中添加故障。目的是使从单一的 MySQL 或 MariaDB 迁移到分片的 Vitess 成为可能,而应用对此有所感知。 改进可用性 Vitess 4.0 中有许多改进,可以使新用户更容易使用: 完善 Kubernetes 和 Vagrant 的本地开发入门教程。 入门所需的配置较少,因为在许多情况下可以自动检测到 MySQL 版本。 改进了许多错误消息,并着重于确保它们处于正确的日志级别(error、warning 或 info)。 VReplication 的实验性支持 分片的缺点之一是可能不得不做出权衡取舍,例如,在具有买家和卖家的电子商务平台中,可以选择按买家分片,在这种情况下,卖家在分片系统中的查询可能会变慢。对于需要买卖双方都有效查询的应用,VReplication 提供了一种方式来订阅对每个分片进行的更改(使用 MySQL 二进制日志),并保留关键数据的冗余副本在其它分片上的可用性。可以认为此功能类似于其它商业数据库中可用的实例化视图。 此外 Vitess 4.0 还支持表等效的概念,这意味着可以指示 Vitess 从原始表或 VReplication 实例化视图中进行读取,无论哪种查询都能更快地执行。 详情查看更新说明: https://vitess.io/blog/2019-11-05-vitess-4.0-has-been-released

优秀的个人博客,低调大师

SpringCloud微服务(04):Turbine组件,实现微服务集群监控

本文源码:GitHub·点这里 || GitEE·点这里 一、聚合监控简介 1、Dashboard组件 微服务架构中为了保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应程序的可用性和健壮性,它是一个重要指标。HystrixDashboard是作为断路器状态的一个组件,提供了数据监控和直观的图形化界面。 2、Turbine组件 Hystrix Dashboard组件监控服务的熔断情况时,每个服务都有图形界面,当微服务数量很多时,监控非常繁杂.为了同时监控多个服务的熔断状况,Netflix开源了Hystrix的另一个组件Turbine.Turbine用于聚合多个Hystrix Dashboard监控,将多个Hystrix Dashboard组件的数据聚集在一个面板展示,集中监控。 3、案例结构 聚合监控服务 node04-monitor-7002 注册中心 node04-eureka-7001 两个服务提供者,都配置了熔断器,和Dashboard组件 node04-provider-6001 node04-provider-6002 二、Dashboard组件 这个组件是针对单个微服务的监控的。具体使用流程如下。 1、注解和依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> </dependency> 启动类注解 @EnableHystrix @EnableHystrixDashboard 2、启动下面两个服务 node04-eureka-7001 node04-provider-6001 3、访问指定接口 1)、访问配置的熔断接口http://localhost:6001/getInfo2)、打开数据面板http://localhost:6001/hystrix.stream可以看到一些具体的数据,类似打印日志的方式,展现上面接口的执行信息。3)、打开图形面板http://localhost:6001/hystrix查看配置监控信息。 刷新几次上面配置的熔断接口,查看效果。 三、Turbine组件 node04-monitor-7002 聚合监控服务,聚集6001,和6002两个服务的监控。 1、依赖和注解 1)、服务提供者新增依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2)、聚合服务依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-turbine</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix-turbine</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 启动类注解 @EnableTurbine 2、启动服务 依次启动注册中心,两个服务提供者,最后启动聚合监控中心。 3、操作流程 1)、打开监控面板进行如下配置 2)、刷新两个服务的熔断接口 http://localhost:6001/getInfo http://localhost:6002/getInfo 查看上面面板的监控信息如下。 聚合监控服务流程就是这样了。 四、源代码说明 GitHub·地址 https://github.com/cicadasmile/spring-cloud-base GitEE·地址 https://gitee.com/cicadasmile/spring-cloud-base

优秀的个人博客,低调大师

SpringBoot开发案例之分布式集群共享Session

前言 在分布式系统中,为了提升系统性能,通常会对单体项目进行拆分,分解成多个基于功能的微服务,如果有条件,可能还会对单个微服务进行水平扩展,保证服务高可用。 那么问题来了,如果使用传统管理 Session 的方式,我们会遇到什么样的问题? 案例 这里拿下单举例,用户小明在天猫上相中了一个的娃娃,觉得不错,果断购买,选尺寸,挑身高,然后确认选择,赶紧提交订单,然后就跳转到了登录页面!小明表示很郁闷,大写的问号??? 小明进入娃娃页面,此时请求通过代理服务发送到业务系统一。 小明选尺寸,挑身高,此操作并没有对后端服务发送请求。 小明提交订单,此时请求通过代理服务发送到业务系统二,然鹅,二系统此时并没有查询到小明的登录信息,就被无情的跳转到登录页了。 方案 HttpSession 默认使用内存来管理 Session,通常服务端把用户信息存储到各自的 Jvm 内存中。所以小明下单的时候找不到登录信息,那么我么何不把用户信息集中存储!? 为了测试效果,这里我们搭建一个演示案例,项目涉及 SpringBoot、spring-session、redis、nginx 等相关组件。 pom.xml引入依赖: <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 配置 redis 参数,软件自行安装: ## redis #session存储类型 spring.session.store-type=redis spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=123456 spring.redis.pool.max-active=8 spring.redis.pool.max-wait=-1 spring.redis.pool.max-idle=8 spring.redis.pool.min-idle=0 spring.redis.timeout=3000 简单的用户登录实现,省略部分代码: @RequestMapping(value="login",method=RequestMethod.POST) public Result login(String username,String password,HttpServletRequest request,HttpServletResponse response) throws Exception { SysUser user = userService.getUser(username); if(user==null) { return Result.error("用户不存在"); }else { if(user.getPassword().equals(password)) { request.getSession().setAttribute("user", user); return Result.ok(); }else { return Result.error("密码错误"); } } } 配置代理实现,基于 Nginx: server { listen 80; server_name blog.52itstyle.vip; location / { proxy_pass http://192.168.1.2:8080; } location /cart { proxy_pass http://192.168.1.3:8080$request_uri; } location /order { proxy_pass http://192.168.1.4:8080$request_uri; } } 配置成功后登录系统,在 redis 中查询用户信息: 127.0.0.1:6379> keys * 1) "spring:session:expirations:1562577660000" 2) "spring:session:sessions:1076c2bd-95b1-4f23-abd4-ab3780e32f6f" 3) "spring:session:sessions:expires:1076c2bd-95b1-4f23-abd4-ab3780e32f6f" 小结 这样,小明就可以开心的买娃娃了!

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册