(34)...SpringCloud
文章平均质量分 84
IT云清
技术专家,团队主管,Apache Seata Committer,公众号:java4all
展开
-
apollo 系统出错,请重试或联系系统负责人
本地测试apollo,使用官方Quick Start方式,启动Apollo配置中心后,访问http://localhost:8070/ 的portal页面,一直报错:系统出错,请重试或联系系统负责人官方解决方案是:如果提示系统出错,请重试或联系系统负责人,请稍后几秒钟重试一下,因为通过Eureka注册的服务有一个刷新的延时。个人等待重试多次后还是报错。之后直接重启电脑,再次重新启动apo...原创 2018-10-18 16:42:23 · 6798 阅读 · 3 评论 -
分布式事务系列--SpringCloud整合byteTCC框架0.5.x版本1
这里详细记录下,SpringCloud框架整合byteTCC分布式事务框架的过程。版本信息1.SpringCloud2.SpringBoot3.byteTCC1.创建company-server项目创建一个SpringBoo web项目,先贴下完整的项目结构:2.引入byteTCC依赖SpringCloud其他依赖这里不做展示,仅展示byteTCC的依赖: <!--by...原创 2019-02-15 10:29:07 · 3212 阅读 · 5 评论 -
SpringCloud教程(Finchley版本)-08:eureka集群搭建
本地搭建2个eureka服务,互相注册为一个集群,生产环境可以部署更多的节点。示例中两个项目分别为eureka-server,port为8761,和eureka-server1,port为8762。这里列出重点步骤。1.引入依赖 eureka-server <!--eureka-server--> <dependency> <groupId&a原创 2019-02-16 15:43:27 · 942 阅读 · 0 评论 -
分布式锁系列--03关于分布式锁的选型分析01
本文分析,在分布式系统中,使用redis实现分布式锁,会遇到什么问题。关于分布式锁概念和redis分布式锁的具体实现,可参考前面的2篇文章。本文重点在于,对分布式锁技术选型的分析。1.redis锁单节点实现常规的,使用redis做分布式锁,主要实现如下:1.1加锁 /** * 加锁 * * @param lockName 锁名,对应被争用的共享资源 * @para...原创 2019-02-16 17:25:08 · 791 阅读 · 0 评论 -
分布式事务系列--SpringCloud整合byteTCC框架0.5.x版本2
6.tcc业务逻辑编写在使用tcc框架处理分布式事务时,需要我们自己来编写tcc业务代码。这里演示一个简单的加钱的操作。一个tcc操作,分为try,confirm,cancel三个操作。根据创建的company表,可以看到公司表有一个money金额字段,还有个frozen字段,在业务简单时,我们可以借助这个字段来实现tcc;如果业务复杂,修改多个字段时,我们可以不要这个字段,tcc的每一步,...原创 2019-02-22 14:51:55 · 2867 阅读 · 4 评论 -
Bean method 'eurekaHealthCheckHandler' not loaded because @ConditionalOnProperty (eureka.client.
springboot项目报错:Bean method 'eurekaHealthCheckHandler' not loaded because @ConditionalOnProperty (eureka.client.healthcheck.enabled) did....eureka配置一下healthcheck即可。注意,idea不能提示这个属性,得手动敲。eureka: cl...原创 2019-02-18 15:24:35 · 5417 阅读 · 0 评论 -
分布式锁系列--04关于分布式锁的选型分析02-Redlock的实现原理
上一文分布式锁系列–03关于分布式锁的选型分析01中,我们看到了单节点的redis分布式锁在failover时产生了无法解决的安全问题,因此,Redis的作者antirez提出了一种新的基于redis的分布式锁的算法Redlock,它基于N个完全独立的Redis节点(通常情况下N可以设置成5)。1.Redlock获取锁Redlock获取锁的原理如下:1.获取当前时间(毫秒数): t1。2....原创 2019-02-18 21:11:42 · 1931 阅读 · 2 评论 -
The bean 'dataSource', defined in BeanDefinition defined in class path resource
SpringCloud,SpringBoot,Mybatis整合时,启动项目,遇到一个错误:2019-02-13 15:38:02.393 INFO 7512 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the c...原创 2019-02-13 16:12:06 · 9147 阅读 · 0 评论 -
分布式事务系列--SpringCloud整合byteTCC框架0.4.x版本
本文详细记录下,SpringCloud框架整合byteTCC分布式事务框架的过程。这里只展示,一个是springboot项目,引入byteTCC必备的基础步骤,不包括tcc的业务逻辑过程。请优先确定项目使用的springboot和springcloud版本,然后选择对应的byteTCC版本进行整合,0.4.x和0.5.x整合差异较大。总体而言,spring boot 1.x得用0.4.x的版本,0...原创 2019-02-19 11:40:15 · 2609 阅读 · 0 评论 -
byteTCC框架--@Compensable注解问题
在使用byteTCC框架0.5.0-BETA2版本时,发现一个关于@Compensable注解的问题,这里记录下:1.@Compensable注解问题若try的实现逻辑写在serviceImpl中,而不是controller中,那么,@Compensable需要添加在controller中,而不是serviceImpl中。如果仅仅添加在serviceImpl中,那么confirm或者canc...原创 2019-02-14 09:42:11 · 4116 阅读 · 3 评论 -
byteTCC框架--官方demo调试
调试了下作者提供的样例,记录下步骤,基于0.4.x版本。1.启动eureka注册中心先修改下hostname原本:server: port: 7000eureka: instance: hostname: inst1 client: registerWithEureka: false fetchRegistry: false serviceU...原创 2019-02-14 09:51:26 · 5938 阅读 · 1 评论 -
Consul相关资料
1.consul介绍https://www.consul.io/intro/index.html2.consul和其他组件的对比https://www.consul.io/intro/vs/index.html3.使用https://www.consul.io/intro/getting-started.html待翻译补充 。。。。。。...原创 2019-03-05 13:36:01 · 478 阅读 · 0 评论 -
注册中心技术选型分析
本文是对微服务中,注册中心的技术选型的一些思考和分析,部分技术比如etcd,本人没有在生产环境使用过,所以部分结论的得出,是在阅读了大量的资料后得出的结论。如eureka,在实际中,很多小项目,其实就是一个单点的eureka做注册中心,也没发生过什么生产事故,但就技术调研和技术储备而言,我们不能只考虑理想的场景,了解各种技术的优缺点,用的时候,起码知道这个技术的短板和可能带来的一些问题,这样在用户...原创 2019-03-07 09:14:16 · 3047 阅读 · 5 评论 -
分布式事务系列--是选TCC还是SAGA
byteTCC框架,支持两种模式,一种是TCC模式,一种是SAGA模式,二者如何选择,是一个取舍问题,没有完美方案。1.TCC模式这种模式下,我们需要操作的目标字段,都要添加一个相关的冻结字段,try操作是操作冻结字段,cc操作时,将冻结的数值更新到目标字段。示例如下: <!--try逻辑--> <update id="increaseMoney"> ...原创 2019-03-15 14:05:25 · 10881 阅读 · 4 评论 -
聊聊分布式
欢迎关注公众号:java4all↓↓↓分布式系列目录,点击直接进入文章↓↓↓,也可进入专栏:1.分布式锁系列–01分布式锁入门介绍2.分布式锁系列–02Redis实现分布式锁3.分布式锁系列–03关于分布式锁的选型分析014.分布式锁系列–04关于分布式锁的选型分析025.分布式事务系列–SpringCloud整合byteTCC框架0.4.x版本6.分布式事务系列–SpringClo...原创 2019-03-30 15:13:06 · 850 阅读 · 2 评论 -
为什么要实施微服务架构?
微服务架构,是系统架构的一种设计风格,与之相对的是,传统企业系统架构中的单体模式。1.架构演进这里借助dubbo官网的一张图来说明架构演进之路:图片来源:dubbo官网随着互联网的发展,用户基数变得越来越大,网站应用的规模也不断扩大, 常规的单体应用和垂直应用架构已无法应对, 分布式服务架构以及流动计算架构正在成为一种趋势。1.1单一应用架构当网站流量很小时,只需一个应用,将所有功...原创 2019-04-26 17:27:36 · 1341 阅读 · 2 评论 -
seata中的grouplist的作用
在seata-server端的file.conf配置文件中,有个default.grouplist配置,是干嘛的呢?1.作用方式这个配置,只有当registry.type=file,注册中心是file方式时,才会起作用。2.值这个值可以配置多个,配置多个就是集群方式。2、关于 Seata 的 grouplist 问题:什么时候会用到 file.conf 中的 default.group...原创 2019-09-11 16:25:45 · 11035 阅读 · 2 评论 -
byteTCC框架--关于接口返回问题的讨论
在普通的web项目中,调用接口返回数据,如下,不出错返回一种,出错了,返回另外一种。前端是直接可以拿到返回的信息的。 @GetMapping("decreaseMoney") @ResponseBody public void decreaseMoney(Integer id,BigDecimal money){ try { //do something ...原创 2019-02-15 09:11:25 · 1079 阅读 · 0 评论 -
SpringCloud教程(Finchley版本)-06:断路器(Hystrix-Feign)
在微服务系统中,我们把系统拆分成了很多小的服务,各个服务之间通过不同的方式进行依赖和调用,为了保证服务的高可用性,单个服务通常会集群部署,此时,许多服务由于各种问题可能会调用失败,比如超时、异常等。如何能够保证在一个依赖出问题的情况下,不会出现故障传播,导致整体服务失败,这个就是Hystrix需要做的事情。Hystrix提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个...原创 2018-12-11 19:55:16 · 1058 阅读 · 4 评论 -
@EnableEurekaServer注解不可用
自己启动一个Eureka server时,发现@EnableEurekaServer注解不可用,后来发现是springCloud版本不对,修改下版本: <dependency> <groupId>org.springframework.cloud</groupId>原创 2018-10-18 20:38:42 · 18488 阅读 · 2 评论 -
org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
21:03:46.843 [main] ERROR org.springframework.boot.SpringApplication - Application run failedjava.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.&lt;init&gt;([Ljava...原创 2018-10-18 21:06:49 · 5473 阅读 · 0 评论 -
SpringCloud教程(Finchley版本)-01:服务注册与发现(Eureka)
本文,讲述如何启动一个项目作为eureka注册中心,主要分为以下几个步骤:1.新建项目2.引入eureka依赖3.添加注解4.修改配置文件5.启动项目1.新建项目(注册中心)新建一个SpringBoot项目eureka_server,作为注册中心,后续的其他项目,都注册在这个注册中心上面。2.引入eureka依赖这里和普通springboot项目相比,主要就是需要多引入两个依...原创 2018-11-24 09:58:12 · 1516 阅读 · 0 评论 -
SpringCloud教程(Finchley版本)-02:服务消费者
本文,讲述如何将一个服务注册到eureka注册中心,主要分为以下几个步骤:1.新建项目2.引入eureka依赖3.添加注解4.修改配置文件5.新建一个controller,提供一个服务接口6.启动项目由于后续需要演示负载均衡,这里会创建两个项目company_server1,company_server2,这两个项目提供完全相同的服务,注册到注册中心时,使用相同的服务名称comp...原创 2018-11-24 10:02:32 · 1366 阅读 · 4 评论 -
SpringCloud教程(Finchley版本)-00:什么是SpringCloud
SpringCloud是什么,能干什么,有什么优势,这几个问题,网上有很多资料,这里就不再单独整理,这里转载一篇,有适当修改。本文转载自纯洁的微笑的博客:大话Spring CloudSpring Cloud是什么Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数...转载 2018-11-24 10:20:22 · 1866 阅读 · 0 评论 -
java.lang.IllegalStateException: Service id not legal hostname
SpringCloud服务,在启动两个A服务,然后使用B服务通过feign调用A时,出现以下错误:java.lang.IllegalStateException: Service id not legal hostname显示非法的主机名称,意味着找不到A服务。按照网上的解决方案,查看了A服务的配置,是下划线的问题。原来的:server: port: 8011spring: a...原创 2018-11-23 15:36:00 · 9392 阅读 · 0 评论 -
redisson的MultiLock连锁
redisson中的MultiLock,可以把一组锁当作一个锁来加锁和释放。1.官方文档的解释:Redis based distributed RedissonMultiLock object groups multiple RLock objects and handles them as one lock. Each RLock object may belong to different...原创 2018-11-29 12:21:06 · 7553 阅读 · 2 评论 -
The bean 'counterFactory', defined in class path resource [org/springframework/cloud/netflix/zuul/Zu
SpringCloud启动zuul时,报如下错误:查询发现是Springboot的版本问题,我这里springbood版本是2.1.0,SpringCloud是F版本。把SpringBoot版本降到2.0.6即可。2018-11-29 15:54:38.127 INFO 30532 --- [ main] com.java4all.ZuulServer1Applicati...原创 2018-11-29 16:17:44 · 9208 阅读 · 0 评论 -
SpringCloud教程(Finchley版本)-03:负载均衡(Ribbon)
Spring Cloud Ribbon是一个基于Http和TCP的客服端负载均衡工具,它是基于Netflix Ribbon实现的。它是一个工具类框架,不像服务注册中心、配置中心、API网关那样独立部署,但是它几乎存在于每个微服务的基础设施中。微服务间的调用,API网关的请求转发等,都是通过Ribbon来实现的,包括后面要介绍的Feign,也是基于Ribbon实现的工具。本文介绍如何使用Ribbo...原创 2018-11-29 19:23:10 · 1623 阅读 · 4 评论 -
SpringCloud教程(Finchley版本)-07:网关(Zuul)
在微服务架构中,后端服务往往不会直接开放给调用端,而是通过一个网关根据请求的url,路由到相应的服务。当添加网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端。在Spring Cloud体系中, Spring Cloud Zuul就起到了网关的作用,它可以提供动态路由,监控,弹性,安全等的边缘服务。本文示例一下zuul的简单使用,...原创 2018-12-15 11:00:34 · 1177 阅读 · 0 评论 -
SpringCloud系列教程目录
↓↓↓SpringCloud教程目录,点击直接进入文章↓↓↓,也可进入专栏:SpringCloud教程(Finchley版本)-00:什么是SpringCloudSpringCloud教程(Finchley版本)-01:服务注册与发现(Eureka)SpringCloud教程(Finchley版本)-02:服务消费者SpringCloud教程(Finchley版本)-03:负载均衡(Rib...原创 2018-12-15 11:17:36 · 2978 阅读 · 7 评论 -
Debezium教程翻译02:启动Docker,Debezium,Zookeeper,Kafka
使用Docker运行Debezium运行Debezium涉及三个主要服务:Zookeeper、Kafka和Debezium的连接器服务。本教程将指导您使用Docker和Debezium的Docker映像启动这些服务的单个实例。另一方面,生产环境需要运行每个服务的多个实例,以保证性能、可靠性、复制和容错。这可以通过OpenShift和Kubernetes这样的平台来实现,该平台可以管理运行在...原创 2018-12-15 16:29:19 · 1573 阅读 · 0 评论 -
SpringCloud教程(Finchley版本)-04:断路器(Hystrix-Ribbon)
在微服务系统中,我们把系统拆分成了很多小的服务,各个服务之间通过不同的方式进行依赖和调用,为了保证服务的高可用性,单个服务通常会集群部署,此时,许多服务由于各种问题可能会调用失败,比如超时、异常等。如何能够保证在一个依赖出问题的情况下,不会出现故障传播,导致整体服务失败,这个就是Hystrix需要做的事情。Hystrix提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个...原创 2018-12-11 16:00:24 · 1180 阅读 · 4 评论 -
Debezium教程翻译03:启动mysql数据库
启动mysql数据库目前,我们已经启动了Zookeeper和Kafka,但是还没有数据库服务器,Debezium可以从中捕获变化。现在,让我们使用一个示例数据库启动一个MySQL服务器。打开一个新的终端,使用它启动一个新的容器,运行一个预先配置了库存数据的MySQL数据库服务器:$ docker run -it --rm --name mysql -p 3306:3306 -e MYSQL_...原创 2018-12-17 19:15:41 · 713 阅读 · 0 评论 -
SpringCloud教程(Finchley版本)-05:负载均衡(Feign)
本文介绍使用Feign实现负载均衡,主要分为以下几个步骤:1.创建项目2.引入依赖3.修改配置文件4.添加启动注解5.跨服务调用6.启动项目,测试1.创建项目新建一个Springboot项目feign_server1。2.引入依赖 &amp;lt;!--eureka-client--&amp;gt; &amp;lt;dependency&amp;gt; &amp;l原创 2018-12-11 19:25:45 · 1084 阅读 · 6 评论 -
Seata 事务分组
Seata 事务分组:1.什么是事务分组?A:事务分组是 Seata 的资源逻辑,类似于服务实例。service { #vgroup->rgroup vgroup_mapping.fsp_tx_group = "default" #only support single node default.grouplist = "127.0.0.1:8091" #degra...原创 2019-09-11 16:26:28 · 5547 阅读 · 3 评论