Fork me on GitHub
雨正来【一路奔跑的人】


  • 首页

  • 归档

  • 分类

  • 标签

  • top

  • 关于

  • 搜索

微服务

发表于 2016-09-23 | 分类于 编程 | | 阅读次数:
| 字数统计: 827

微服务

  • Eric Evans 的《领域驱动设计》
  • Alistair Cockburn 的六边形架构理论
    Netflix 分享了构建大型反脆弱系统的经验 github : https://github.com/Netflix

    什么是微服务

    微服务就是一些协同工作的小而自治的服务

    1. 很小,专注于做好一件事
      在一个单块系统内,通常会创建一些抽象层或者模块来保证代码的内聚性,从而避免上述问题。
      内聚性是指将相关代码放在一起,在考虑使用微服务的时候,内聚性这一概念
      很重要。Robert C. Martin 有一个对单一职责原则(Single Responsibility Principle,http://
      programmer.97things.oreilly.com/wiki/index.php/The_Single_Responsibility_Principle)的论述:
      “把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来。 ”该论
      述很好地强调了内聚性这一概念。 也让我同时想到了tw提出的正交设计。
  • 1.1 根据业务的边界来确定服务的边界
    那就出现了一个问题,业务的辩解确定服务的边界,但是不可避免有时候领域的对象涉及很广很复杂。
    一个微服务应该可以在两周内完全重写,这个经验法则在他所处的特定上下文中是有效的。
    这个时候请遵守上述的原则,可能有的时候很有用。
    使用的服务越小,独立性带来的好处就越多。但是管理大量服务也会越复杂。
阅读全文 »

一分钟了解负载均衡

发表于 2016-09-21 | 分类于 编程 | | 阅读次数:
| 字数统计: 1.2k

转载 维信架构师之路

什么是负载均衡

  • 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。

  • 常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,就能实现“将请求/数据【均匀】分摊到多个操作单元上执行”。

  • 【客户端层->反向代理层】的负载均衡

阅读全文 »

Days 1/21 口语训练

发表于 2016-09-20 | 分类于 英语 | | 阅读次数:
| 字数统计: 58

Perhaps we see a part of ourselves in our friends. Maybe seeing the good in them helps us to see the good in us as well.

** 或许我们能从朋友身上看到自己的影子,或许看到他们闪光处也能帮助我们!

spring boot 学习(第二篇)

发表于 2016-09-11 | 分类于 编程 | | 阅读次数:
| 字数统计: 898

Banner设置

通过在classpath下添加一个banner.txt或设置banner.location来指定相应的文件可以改变启动过程中打印的banner。如果这个 文件有特殊的编码,你可以使用banner.encoding设置它(默认为UTF-8)

  • 编程式
    SpringBootApplication.setBanner(…)方法。使用 org.springframework.boot.Banner接口,实现你自己的printBanner()方法
    1
    2
    3
    4
    5
    变量 | 描述
    ${application.version} | MANIFEST.MF中声明的应用版本号,例如1.0
    ${application.formatted- version}|MANIFEST.MF中声明的被格式化后的应用版本号(被括号包裹且以v作为前缀),用于显 示,例如(v1.0)
    ${spring-boot.version}|正在使用的Spring Boot版本号,例如1.2.2.BUILD-SNAPSHOT
    ${spring- boot.formatted-version}|正在使用的Spring Boot被格式化后的版本号(被括号包裹且以v作为前缀), 用于显示,例 如(v1.2.2.BUILD-SNAPSHOT)
阅读全文 »

spring boot 学习(第一篇)

发表于 2016-09-10 | 分类于 编程 | | 阅读次数:
| 字数统计: 459

Spring-boot 学习第一节

  1. Installation and Getting Started
    你可以访问 http://start.spring.io,使用过maven的小伙伴相信都可以掌控!
    点击generate project ,有一个zip包。解压导入到你的IDE即可!
    如果你也是intellij idea 或者是sts 的小伙伴,new project 你就可以看到有一个spring Initializr 图标,之后和maven项目一样,也可以选择你要的模块。可以自行参考官方的guide 文档!
  2. 项目结构
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    com 
    +- example
    +- myproject
    +- Application.java
    | +- domain
    | +- Customer.java
    | +- CustomerRepository.java |
    +- service
    | +- CustomerService.java
    | +- web
    +- CustomerController.java

这时你应该发现root下的Application.java 文件将声明 main 方法,还有基本的一些配置。
只有一个注解@SpringBootApplication 注解等价于以默认属性使用
@Configuration, @EnableAutoConfiguration 和 @ComponentScan,你也可以点击注解的源码看看。
@ComponentScan 组件的扫描 不用多说
@Configuration 配置

  • 如果你非需要使用基于XML的配置,我们建议你仍旧从一个 @Configuration 类开始。你可以使用附加的 @ImportResource 注 解加载XML配置文件。
    @EnableAutoConfiguration 使能自动配置或者叫可以自动配置
  • Spring Boot自动配置(auto-configuration)尝试根据你添加的jar依赖自动配置你的Spring应用。例如,如果你的classpath下 存在 HSQLDB ,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库。 你可以通过将 @EnableAutoConfiguration 或 @SpringBootApplication 注解添加到一个 @Configuration 类上来选择自动配置。
    注:你只需要添加一个 @EnableAutoConfiguration 注解。我们建议你将它添加到主 @Configuration 类上。
  • @SpringBootApplication 注解,由于频繁的使用以上三个注解,固新增加这个注解用于替代。
    去启动下你的应用吧! 还有很多细节就不一一讲述啦,强烈建议去读下官方guide 。

centos7 安装jdk,zk

发表于 2016-09-09 | 分类于 编程 | | 阅读次数:
| 字数统计: 1.6k


1.首先安装jdk 不知道为啥连接上谷歌云之后安装了lrszs但是不能上传文件,所以只能在线安装咯!

1
2
3
4
5
6
7
8
9
10
11
12
 wget http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.rpm?AuthParam=1473427907_0a66fbbc67a2e41e94a759a6c7da1526
mv jdk-8u101-linux-x64.rpm\?AuthParam\=1473427907_0a66fbbc67a2e41e94a759a6c7da1526 jdk-8u101-linux-x64.rpm
sudo yum -y install jdk-8u101-linux-x64.rpm
[alonecong@lancecong ~]$ sudo alternatives --config java

共有 1 个提供“java”的程序。

选项 命令
-----------------------------------------------
*+ 1 /usr/java/jdk1.8.0_101/jre/bin/java

按 Enter 保留当前选项[+],或者键入选项编号:

之后就是配置你的环境变量啦,

1
2
3
4
5
sudo vim /etc/profile 
export JAVA_HOME=/usr/java/jdk1.8.0_101
export JAVA_HOME=/usr/java/jdk1.8.0_101
export JRE_HOME=/usr/java/jdk1.8.0_101/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

1
sudo wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
阅读全文 »

synchronized关键字

发表于 2016-09-08 | 分类于 编程 | | 阅读次数:
| 字数统计: 651

synchronized原理 在java中,每一个对象有且仅有一个同步锁。这也意味着,同步锁是依赖于对象而存在。 当我们调用某对象的synchronized方法时,就获取了该对象的同步锁 也就是监视器monitor 。例如,synchronized(obj)就获取了“obj这个对象”的同步锁。 不同线程对同步锁的访问是互斥的。也就是说,某时间点,对象的同步锁只能被一个线程获取到!通过同步锁,我们就能在多线程中,实现对“对象/方法”的互斥访问。 例如,现在有两个线程A和线程B,它们都会访问“对象obj的同步锁”。假设,在某一时刻,线程A获取到“obj的同步锁”并在执行一些操作;而此时,线程B也企图获取“obj的同步锁” —— 线程B会获取失败,它必须等待,直到线程A释放了“该对象的同步锁”之后线程B才能获取到“obj的同步锁”从而才可以运行。
另外注意是runnable接口还是继承了Thread类!

synchronized基本规则 我们将synchronized的基本规则总结为下面3条,并通过实例对它们进行说明。 第一条: 当一个线程访问“某对象”的“synchronized方法”或者“synchronized代码块”时,其他线程对“该对象”的该“synchronized方法”或者“synchronized代码块”的访问将被阻塞。 第二条: 当一个线程访问“某对象”的“synchronized方法”或者“synchronized代码块”时,其他线程仍然可以访问“该对象”的非同步代码块。 第三条: 当一个线程访问“某对象”的“synchronized方法”或者“synchronized代码块”时,其他线程对“该对象”的其他的“synchronized方法”或者“synchronized代码块”的访问将被阻塞。
实例锁 – 锁在某一个实例对象上。如果该类是单例,那么该锁也具有全局锁的概念。
实例锁对应的就是synchronized关键字。
全局锁 – 该锁针对的是类,无论实例多少个对象,那么线程都共享该锁。

阅读全文 »

Days 2/21 口语训练

发表于 2016-08-29 | 分类于 英语 | | 阅读次数:
| 字数统计: 75

The quickest way to receive love is to give it ;the fastest way to lose love is to hold it too tightly; and the best way to keep love is to give it wings.

** 获得爱情最快的方式给予;失去爱情最快的爱情是握的太紧;给爱插上翅膀是保持爱情最好的方式。

实用词汇 26th August 2016

发表于 2016-08-29 | 分类于 英语 | | 阅读次数:
| 字数统计: 377

[实用词汇] 26th august 2016

Topic : 和man相关的短语
1. a man of action 实干家,行动注意者

  • The one is a man of action ,he is inclined to act first and think later.

2. a man of deeds (行动,功绩) = a man of action

  • A man of action really does things he is not contented to talk.实干家是真正做事情的人,不满足于空谈。
  • He is a man of action right from the start. 他从一开始就是实干家。

3.man to man 坦诚的,开诚布公的

  • 和Frankly speaking意思相近
  • Let’s talk man to man about our problems 让我们诚挚的谈谈我们之间的问题

4. play the man 显示出男子汉气概

  • play it cool 保持冷静 ,抑制住情感
  • play 表现出…..
  • whatever troubles come ,let’s play the man 。无论任何问题来临,都让我们坚守站稳….像个男子汉一样
  • you’d better play the man a little more .你应该多一点男子汉气概。

5. a man of parts 有才干的人,多才多艺的人 `

  • John was certainly a man of parts ,john真是一位才华出众的人。
  • The pianist is man of parts . 那位钢琴师才华横溢。

6. a man of affairs 见过大场面的人 (生意场上) 重要角色

  • He is a man of affairs and has wide experience. 他是见过大场面的人,经验丰富。

7. a man of (adj) character 有(什么样) 个性的人

8. a man in a thousand 千里挑一的人

9. family man/guy 居家男人

10. a man of men 杰出人物

11. a man about town 花花公子,执绔子弟

实用词汇 25th August 2016

发表于 2016-08-28 | 分类于 英语 | | 阅读次数:
| 字数统计: 386

[实用词汇] 25th August 2016 课本中学不到的日常生活口语

Tips:

Screw up 拧紧螺丝,[口] 把事情搞砸

  • Screw n.螺丝 v. 拧紧(螺丝)
  • if you screw something up that means you cause something to fail or be spolied
  • screw something up (or) screw up something 搞砸某事
  • Get out ! Haven’t you screw things up enough already you idiot ? 难道你把事情弄得还不够糟糕,你个白痴?
  • i have a perfect chance but i screwed up. 我本有也一个很好的机会,但是搞砸了.
  • 答应朋友做某事但是没做成Sorry,i screwed up.抱歉我搞砸了。
    Fine line 表达两件事很相似(区别微小)
  • fine adj.好;精小的,细小的
  • There is a fine line between helping you kids with their homework and doing it for them.帮助小孩子做作业和直接代劳差别不大。
  • There is a fine line between sth and sth
  • There is a fine line between confidence and arrogance.自信与自负拆别细微
    Go easy on me 手下留情,别太狠
  • go easy on 温和对待,有节制的消费
  • go easy on someone 对某人手下留情
  • go easy on sth 有节制的消费
  • Go easy on me i just started to learn it a month ago 手下留情,我才开始学一个月。
  • Go easy on that boy he didn’t know he was doing anything wrong . 对那个男孩宽容点,他不知道自己做错了什么。
  • Have a good party and go easy on that Marigarita 享受你的聚会,但是不要喝太多的玛格丽特(一种20多度的鸡尾酒cocktail)
  • Go easy on afternoon coffee intake .下午不要喝太多咖啡.

write by lancecong

1…567
lancecong

lancecong

68 日志
9 分类
32 标签
点下试试
  • 😆 网易云音乐 😆
  • Coldplay Official Website
  • 获取 Elon Musk 的新闻
  • 尼古拉·特斯拉:发明了现代世界的人
© 2017 — 2020 lancecong
微信扫一扫,call me !
0%