- 浏览: 450008 次
- 性别:
- 来自: 北京
最新评论
-
IXHONG:
你好,现在改好了CoderDream 写道【(点击放大图像)】 ...
从0开始的微服务架构:(一)重识微服务架构 -
CoderDream:
【(点击放大图像)】图片在哪里?
从0开始的微服务架构:(一)重识微服务架构 -
IXHONG:
解释下虫洞和空间扭曲:打个比方,一张平面纸上,从A点到B点最捷 ...
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ) -
IXHONG:
mvn clean package -Dmaven.test. ...
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ) -
tracy0201:
大哥,你这个pom文件里的jar包有问题啊。mvn insta ...
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ)
文章列表
https://github.com/javahongxi/whatsmars
熟悉分布式架构下的开发,熟悉电商业务;理解JVM,深入理解面向对象,熟练使用多线程,理解并熟练使用常用设计模式;深入理解并熟练使用Spring、Spring Boot;熟悉微服务架构,熟练使用Dubbo,了解过其源码,熟练使用Netty;熟悉消息中间件应用场景,熟练使用RocketMQ,深入研究过其源码,了解Kafka;熟练使用Redis、MySQL、MongoDB等进行应用开发,了解Elasticsearch。
+WX: javahongxi
将博客搬至CSDN http://blog.csdn.net/javahongxi
解决分布式事务最简单的方案就是向前或向后,即补充或回滚。
业务逻辑有如下三步:
调用A服务冻结金额
调用B服务增加额度
记录数据库
进行到第2步失败 -> 写task,回滚第1步(通知A服务方去回滚)
进行到第3步失败 -> 写task,从A/B服务处同步数据至数据库
还有一种方案就是写task,转化为本地事务,由task去执行上述三步,失败则重试task,当然,A/B服务都有幂等性处理。这种方案的缺点之一,是假定了参数合理的情况下,服务最终一定会执行成功,缺点之二是看起来不自然。
复杂的方案就是TCC方案,参见蚂蚁金服的DTS
elastic-job部署以及简单例子:elastic-job是当当开发的基于qutarz以及zookeeper封装的作业调度工具,主要有两个大框架,一个是elastic-job lite另外一个是elastic-job cloud,其中qutarz是一个开源的作业调度工具,zookeeper是分布式调度工具,这两者结合搭建了elastic-job-lite,这是一个无中心节点的调度,而elastic-job-cloud是一个有中心节点的分布式调度开源工具,只需要设置好机器以及分片,就可以自动的调度到对应的机器上运行。
与lite的不同时cloud采用了mesos来进行分布式资源管 ...
分布式事务服务 DTS二
如何玩转 DTS,基本上使用 DTS 对发起方的配置要求会多一点。
添加 DTS 的依赖
NOTE: 发起方和参与方都需要添加依赖。
如果使用 SOFA Lite,只需按照样例工程里的方式添加依赖:
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>slite-starter-xts</artifactId>
</dependency>
如果没有使用 SOFA Li ...
1.简单的示例:
1 @Configuration
2 @EnableConfigurationProperties({DemoProperties.class})
3 public class DemoConfiguration {
4
5 @Bean
6 public Book getBook(){
转自 http://blog.csdn.net/xiao__gui/article/details/47341385
Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。
要想jar包能直接通过java -jar xxx.jar运行,需要满足:
1、在jar包中的META-INF/MANIFEST.MF中指 ...
Installation
Helpful Information
Install
Install with a package manager
Install manually
Upgrade with the Gradle Wrapper
Older Releases
Helpful Information
You can sign up for free live training with a Gradle core engineer bi-monthly
�本文谢绝转载,非要转载,请注明出处http://www.jianshu.com/p/9df3c3b6067a
前言
为什么需要学Gradle?
Gradle 是 Android 现在主流的编译工具,虽然在Gradle 出现之前和之后都有对应更快的编译工具出现,但是 Gradle 的优势就在于它 ...
在Java构建工具的世界里,先有了Ant,然后有了Maven。Maven的CoC[1]、依赖管理以及项目构建规则重用性等特点,让Maven几乎成为Java构建工具的事实标准。然而,冗余的依赖管理配置、复杂并且难以扩展的构建生命周期,都成为使用Maven的困扰。
Gradle作为新的构建工具,获得了2010 Springy大奖,并入围了2011的Jax最佳Java技术发明奖。它是基于Groovy语言的构建工具,既保持了Maven的优点,又通过使用Groovy定义的DSL[2],克服了 Maven中使用XML繁冗以及不灵活等缺点。在Eugene Dvorkin撰写的文章《最让人激动的5 ...
一、相关阅读
1、使用Jenkins配置Git+Maven的自动化构建
http://blog.csdn.net/xlgen157387/article/details/50353317
2、Jenkins部署Maven多环境项目(dev、beta、prod)的参数设置
3、使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续 ...
什么是token
token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。
当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。
身份认证概述
由于HTTP是一种没有状态的协议,它并不知道是谁访问了我们的应用。这里把用户看成是客户端,客户端使用用户名还有密码通过了身 ...
本文转自 http://www.cnblogs.com/gaoxing/p/4359795.html
从来都是从中央仓库下载jar,这次需要向中央仓库提交jar, 利用Sonatype OSSRH可以把jar等资源提交给Maven的中央仓库。
Sonatype OSSRH介绍:
Sonatype OSSRH使用Nexus 为开源项目提供仓库管 ...
https://github.com/javahongxi
3.2.1 什么是循环依赖
循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环。此处不是循环调用,循环调用是方法之间的环调用。如图3-5所示:
图3-5 循环引用
循环调用是无法解决的,除非有终结条件,否则就是死循环,最终导致内存溢出错误。
Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环 ...
https://github.com/javahongxi
本文转载自kaitao.toutiao.im
注解和可插拔性
本章讨论Servlet 3.0规范定义的注解和使web应用内使用的框架和库能够可插拔的增强。
8.1 注解和可插拔性
在web应用中,使用注解的类仅当它们位于WEB-INF/classes目 ...