微服务架构设计基础-(1)微服务方法论和文化
微服务是最新的架构风格,有望解决我们以前的架构风格所遇到的所有问题。就像其他风格一样,它也有自己的挑战。下面我们来讨论的问题是如何在保持服务尽可能自主的同时实现微服务之间的耦合。在这里,将描述四个选项,并在结论中选择一个明确最好的方式。
对我来说,微服务是一种自主服务,它对一项业务能力负全部责任。完整的职责包括演示,API,数据存储和业务逻辑。Autonomous是我的关键词,通过使服务自治,可以...
Netty游戏服务器实战开发(6):Netty整合Zookeeper实现分布式服务发现与注册
1:Zookeeper基础
安装zookeeper。当然,很多时候我们会在Windows上开发,所以,我们需要在本地搭建一个zookeeper环境。方便开发过程中的测试。
首先我们去Apache上下载zookeeper。https://zookeeper.apache.org/
下载下来后解压得到如下文件
打开conf里面的zoo_simple.cfg ,拷贝一份,重新命名为zoo.cfg修改如...
编程实现一个比较任意两个软件版本号大小的函数
如 1.2.3a 和 1.2.4b
我写的方法,各位大大还有啥好的办法留言一下.
/**
*
* 编程实现一个比较任意两个软件版本号大小的函数,如 1.2.3a 和 1.2.4b
* 当opt1大于opt2时返回true,当opt1小鱼opt2时返回false
*
* @param opt1
* @param opt2
* @r...
微服务架构设计基础-(2):微服务架构的特性
导读:
天下大势,分久必合合久必分。软件也是一样。
微服务是最新的架构风格,有望解决我们以前的架构风格所遇到的所有问题。就像其他风格一样,它也有自己的挑战。下面我们来说一下微服务架构的特性。让我们学习微服务不在迷茫。
特性
1. 单一职责
微服务架构中的每个服务,都是具有业务逻辑的,符合高内聚、低耦合原则以及单一职责原则的单元,不同的服务通过“管道”的方式灵活组合,从而构建出庞大的系统。
2. 轻...
深入学习理解(9):java:AbstractQueuedSynchronizer详解
导读:
前一阵子在写轻量级RPC框架的时候,由于系统中所需要用异步RPC模型,由于系统所要求性能比较苛刻,所以基本所有耗时的操作都会采用异步调用的方式:比如异步读写DB,IO,更可能redis的操作都需要异步(主程说了,我咋办,做呗)。
基于Netty的轻量级rpc框架已经开源,想去了解的小伙伴可以查看我另一篇文章。
https://blog.csdn.net/baidu_23086307/art...
Netty游戏服务器实战开发(7):利用redis或者zookeeper实现3pc分布式事务锁(一)。支撑腾讯系列某手游百万级流量公测
引导:博主在跳槽之前在一家和腾讯合作的游戏厂商做手游服务器开发,在那学习到很多有关腾讯的开发规范和知识。此文的部分知识就是在那学习到的。
正文:
在分布式系统中,我们实现对临界资源加锁的方式不能像在独立进程中使用jdk自带的锁的方式进行加锁了。我们需要夸进程加锁,所以实现的是分布式事务锁。对于分布式事务锁实现的方案估计很多人都知道,有关于redis的,zookeeper的。
下面我们采用提问的方式...
Netty游戏服务器实战开发(8):利用redis或者zookeeper实现3pc分布式事务锁(二)。支撑腾讯系列某手游百万级流量公测
导读:在上篇文章中介绍了分布式事务项目的基本原理和工程组件,我们了解到了分布式事务的理论知识。处于实战的经验,我们将理论知识使用到实际项目中。所以我们将利用idea 来实战我们的项目。
回到正文:
在上篇文章中我们已经把需要的准备工作做好了。现在我们需要将如何实现分布式3pc
...
Netty游戏服务器实战开发(9):利用redis或者zookeeper实现3pc分布式事务锁(三)。支撑腾讯系列某手游百万级流量公测
导读:在编写前面两篇文章的时候,博主其实已经把这个项目做完了,应为不可能一边写文章,一遍写项目。所以我都是把项目做完之后然后通过自己测试之后确保没有问题就来编写文章。
在上面的介绍中我们已经了解到如何利用redis或者是zookeeper来实现分布式事务锁,也了解了分布式所务锁的基本原理已经2pc提交和3pc提交的区别。但是有没有小伙伴思考过这样一个问题?我们有了这些分布式事务锁组件。我们使用在项...
idea中搭建基于maven的spring-boot项目
其实我一直很想写一篇文章来说明一下如何在idea中创建一个spring-boot项目的,但是由于找工作和换工作的时间一直耽搁到现在,趁今天晚上加班的时间,终于挤出半个小时来讲述如何在idea中创建spring-boot项目。
在上篇文章关于在《idea中搭建基于maven的ssm整合框架》得到读者的好拼反馈,但是由于spring配置使得spring的使用起来入门比较困难,所以有了 spring-b...
意料之外,情理之中,Spring.NET 3.0 版本发布-
意料之外,情理之中,Spring.NET 3.0 版本发布- 备受社区和企业开发者广泛关注的Spring.NET在上周发布了3.0版本,并且目前已经保持着持续的更新,让我们一起来看一看他究竟发布了哪些令人激动的新特性吧! Github上的原贴地址为:https://github.com/spring-projects/spring-net。 1.引言 Spring.NET 3.0.0版本包含 一个功能齐全的控制反转容器 面向方面的编程框架 轻量级脚本的表达式语言 UI不可知的验证框架 ASP.
[转] webpack之plugin内部运行机制
简介 webpack作为当前最为流行的模块打包工具,几乎所有的主流前端开发框架(React、Vue等)都会将其作为默认的模块加载和打包工具。通过简单的配置项,使用各种相关的loader和plugin,我们就可以实现自动的模块依赖分析并打包,从而大大降低了前端项目的开发复杂度,明显提高了前端项目的开发效率。 其中,plugin是webpack核心支柱功能,通过plugin(插件)webpack可以实现loader所不能完成的复杂功能,使用plugin丰富的自定义API以及生命周期事件,可以控制w
Python3 day4
今日内容: 1、高阶函数 2、嵌套函数 3、装饰器 1、高阶函数 定义: a:把一个函数名当作实参传给函数 a:返回值包含函数名(不修改函数的调用方式) import time
def test1():
time.sleep(3)
print('in the test1')
def func(fun):
start_time=time.time()
fun()
stop_time=time.time()
print("fun use time
HDOJ 2094(拓扑排序)
1 #include <iomanip>
2 #include <iostream>
3 #include <cstdio>
4 #include <cmath>
5 #include <cstring>
6 #include <algorithm>
7 #include <queue>
8 #include <stack>
9 #include <vector>
10 #include <map>
11 using namespace std;
12 int n,m,inbu
[系列汇总] - 二十三种设计模式(持续更新中…)
摘要 最近在读GOF的Design Patterns: Elements of Reusable Object-Oriented Software(设计模式:可复用面向对象软件的基础),学习前辈们的经验来增加自己的编码设计能力。在学习的过程中,会把我从书上学到的知识以及自己的理解写到这里。一方面能够巩固自己学到的东西同时方便以后的复习,另一方面是希望能够帮助到那些跟我一样不大了解设计模式的人。 我理解的设计模式不是一套固定的代码,更多的是一种设计理念。它能够帮助我们解决特定的设计问题,使我们的
(D13)Random模块-包
随机模块:Random 作用: 用于模拟或者生成随即输出的模块儿 用法示意: import random as R
函数名 描述 R.random() 返回一个(0,1)之间的堆积实数 R.unifrom(a,b) 返回[a,b]之间的随机实数 R.randin(a,b) 返回在[a,b] 范围内的整数 R.randrange 返回range(start,stop,step)中的随机数 R.chise(seq) 从序列中返回任意元素 R.shuffle(seq[random]) 随机指定序列
读《韭菜的自我修养》
一、背景 十一国庆节的时候,坐高铁回重庆了。 当时还在高铁上写了一篇腾讯的文章《腾讯的竞争力与组织架构》。腾讯这次调整,目前看仅仅时BG进行合并,还没看到实质性的调整,等过几个月再看看会如何深入调整吧。如果仅仅是BG合并,那其实是否调整都没有区别。 国庆期间把《简单的逻辑学》看完了,基本的逻辑分析,其实每个人都需要掌握的。很多人分不清谣言、上当受骗都是缺少逻辑的原因。 回深圳坐的是慢车,是的,就是传说中的绿皮车。 路上看了两本书李笑来的《韭菜的自我修养》和禁书《美丽新世界》。 这里简单记录一下
写给大家看的设计书(第3版)PDF下载高清完整扫描原版
这本书出自一位世界级设计师之手。复杂的设计原理在书中凝炼为亲密性、对齐、重复和对比4 个基本原则。作者以其简洁明快的风格,将优秀设计所必须遵循的这4 个基本原则及其背后的原理通俗易懂地展现在读者面前。本书包含大量的示例,让你了解怎样才能按照自己的方式设计出美观且内容丰富的产品。 此书适用于各行各业需要从事设计工作的读者,也适用于有经验的设计人员。需要学习的朋友可以通过网盘下载pdf版 http://putpan.com/fs/8y1i5bce5n5s1h8u0/ 作者简介 Robin Will
js实现复选框的全选、全不选和反选
js实现复选框的全选、全不选和反选 主要是用遍历的方法查找元素,然后通过改变checked的属性来选择,为true则是选中状态,为false则是未选状态 实现代码 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>复选框的选择</title>
6 <style>
7 #btn{
8 margi
Spring Boot系列——7步集成RabbitMQ
RabbitMQ是一种我们经常使用的消息中间件,通过RabbitMQ可以帮助我们实现异步、削峰的目的。 今天这篇,我们来看看Spring Boot是如何集成RabbitMQ,发送消息和消费消息的。同时我们介绍下死信队列。 集成RabbitMQ 集成RabbitMQ只需要如下几步即可 1、添加maven依赖
<!--rabbitmq-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactI
今日推荐
周排行