Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update code #1

Merged
merged 4 commits into from
Aug 14, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

---

原文地址:https://github.com/aalansehaiyang/technology-talk

### 前言

有人认为编程是一门技术活,要有一定的天赋,非天资聪慧者不能及也。其实不然,笔者虽是计算机专业出身,但工作年限并不长,对于技术这碗饭有一些心得体会,大多数人成为某领域顶级专家可能会有些难度,但应对日常工作,成长为资深研发工程师、技术专家、甚至成为小团队的Team Leader,其实并不难。
Expand All @@ -30,7 +28,7 @@
* [连接池](data-base/database-connection-pool.md)
* [事务](data-base/transaction.md)
* [分库分表](data-base/分库分表.md)
* [id生成器](data-base/id-generate.md)
* [全局表 ID生成器](data-base/id-generate.md)
* [读写分离](http://blog.csdn.net/itomge/article/details/6909240)
* [SQL调优](data-base/sql-optimize.md)
* [其它](data-base/other.md)
Expand All @@ -43,7 +41,7 @@
* [Nginx](web/Nginx.md)
* [Tomcat](web/tomcat.md)
* 协议
* [HTTP 协议](web/http协议.md)
* [HTTP 协议](web/http.md)
* [TCP 协议](web/tcp.md)
* [CDN](web/CDN.md)
* [其它](web/other.md)
Expand All @@ -60,6 +58,7 @@
* [Quartz](open-source-framework/Quartz.md)
* [HttpClient](open-source-framework/HttpClient.md)
* [Javassist](http://blog.csdn.net/itomge/article/details/7671294)
* [lombok](open-source-framework/lombok.md)


### 中间件
Expand All @@ -76,15 +75,15 @@
* [RabbitMQ](middle-software/RabbitMQ.md)
* [Kafka](middle-software/kafka.md)
* [RocketMQ](middle-software/RocketMQ.md)
* [MQ框架性能比较](middle-software/mq-compare.md)

* 分布式缓存
* [redis](open-source-framework/redis.md)
* [codis]()
* [memcache](http://blog.csdn.net/itomge/article/details/8035197)

* 本地缓存
* [Guava](middle-software/guava.md)
* [ehcache](middle-software/ehcache.md)
* [Ehcache](middle-software/ehcache.md)

* 搜索
* [Elasticsearch](middle-software/elasticsearch.md)
Expand Down Expand Up @@ -114,26 +113,29 @@
* [Elastic-Job](https://github.com/elasticjob/elastic-job)
* [详解当当网的分布式作业框架elastic-job](http://www.infoq.com/cn/articles/dangdang-distributed-work-framework-elastic-job)
* [TBSchedule](http://blog.csdn.net/taosir_zhang/article/details/50728362)
* [xxl-job](https://github.com/xuxueli/xxl-job)

* 大数据
* [Hbase](middle-software/Hbase.md)
* [Spark](middle-software/Spark.md)
* [Hadoop](middle-software/Hadoop.md)
* [Hive](middle-software/Hive.md)
* [other框架](middle-software/big-data.md)
* [other框架](middle-software/big-data.md)

* 其它
* [数据库binlog的增量订阅&消费组件](https://github.com/alibaba/canal)
* [数据库同步系统](https://github.com/alibaba/otter)
* [TCC-Transaction](middle-software/TCC-Transaction.md)
* [Netty](middle-software/Netty.md)
* [OpenResty](middle-software/openresty.md)

### 系统架构

* [架构经验](system-architecture/architecture-experience.md)
* [经典案例](system-architecture/architecture-good-case.md)
* [通用技术方案选型](system-architecture/technology-selection.md)
* [编码前3000问](system-architecture/编码前3000问.md)
* [软硬件性能](system-architecture/software-performance.md)


### 项目管理
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

---


* [Java多线程之隔离技术ThreadLocal源码详解](https://mp.weixin.qq.com/s/mo3-y-45_ao54b5T7ez7iA)

---

**简介:**

ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM 为每个运行的线程,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。
Expand Down Expand Up @@ -57,9 +62,12 @@ void set(T value)
}
```


* remove

```
void remove()
```
有助于减少线程局部变量的存储需求。
有助于减少线程局部变量的存储需求。


10 changes: 6 additions & 4 deletions basic-knowledge/java.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
* [java的System.getProperty()方法使用](http://blog.csdn.net/itomge/article/details/9098207)
* [java8函数编程(lambda表达式)](java8-stream.md)
* [java的线程状态](java的线程状态.md)
* [ThreadLocal原理机制](ThreadLocal原理机制.md)
* [ThreadLocal原理机制](ThreadLocal.md)
* [HashMap的扩容机制](HashMap的扩容机制.md)
* [Exception](java-exception.md)
* [各种坑](各种坑.md)
Expand Down Expand Up @@ -90,12 +90,14 @@
* [内存结构](jvm内存结构.md)
* [类加载机制](类加载器.md)
* [垃圾回收](java-gc.md)
* ###### jvm调优
* ###### JVM 调优
* [jvm参数](jvm-param.md)
* [jvm自带命令](https://mp.weixin.qq.com/s/QNr8somjodyvU9dRAQG2oA)
* [如何优化Java GC](https://mp.weixin.qq.com/s/ydkEkh_Uc1paftJLKIsm0w)
* [Jvm知识汇总](https://mp.weixin.qq.com/s/4c9K5eYMFGVV2WyKaYXVBA)
* ###### jvm调优工具
* [大型跨境电商 JVM 调优经历](https://mp.weixin.qq.com/s/bOarreWhQJmS6VTZfFcsZw)
* [Jvm知识汇总](https://mp.weixin.qq.com/s/4c9K5eYMFGVV2WyKaYXVBA)
* [海量连接服务端jvm参数调优杂记](https://mp.weixin.qq.com/s/jt_BCAo8krxPAhLhhLdIrg)
* ###### JVM 调优工具
* [XXFox](http://xxfox.perfma.com/)

### 四、前沿
Expand Down
72 changes: 71 additions & 1 deletion basic-knowledge/springboot-javaConfig.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@ public class PersonProperties {
private int age;
}
```

* @EnableConfigurationProperties

用 @EnableConfigurationProperties注解使 @ConfigurationProperties生效,并从IOC容器中获取bean。

https://blog.csdn.net/u010502101/article/details/78758330


* @RestController

组合@Controller和@ResponseBody,当你开发一个和页面交互数据的控制时,比如bbs-web的api接口需要此注解
Expand Down Expand Up @@ -173,6 +181,14 @@ public class TestController {

路由网关的主要目的是为了让所有的微服务对外只有一个接口,我们只需访问一个网关地址,即可由网关将所有的请求代理到不同的服务中。Spring Cloud是通过Zuul来实现的,支持自动路由映射到在Eureka Server上注册的服务。Spring Cloud提供了注解@EnableZuulProxy来启用路由代理。

* Autowired

在默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛出 BeanCreationException 异常,并指出必须至少拥有一个匹配的 Bean。

当不能确定 Spring 容器中一定拥有某个类的 Bean 时,可以在需要自动注入该类 Bean 的地方可以使用 @Autowired(required = false),这等于告诉 Spring:在找不到匹配 Bean 时也不报错

[@Autowired注解注入map、list与@Qualifier](https://blog.csdn.net/ethunsex/article/details/66475792)


* @Configuration

Expand Down Expand Up @@ -219,4 +235,58 @@ public class CDPlayerConfig {
return new CDPlayer(compactDisc);
}
}
```
```

* @Order

@Order(1),值越小优先级超高,越先运行

* @ConditionalOnExpression

```
@Configuration
@ConditionalOnExpression("${enabled:false}")
public class BigpipeConfiguration {
@Bean
public OrderMessageMonitor orderMessageMonitor(ConfigContext configContext) {
return new OrderMessageMonitor(configContext);
}
}
```

开关为true的时候才实例化bean

* @ConditionalOnProperty

这个注解能够控制某个 @Configuration 是否生效。具体操作是通过其两个属性name以及havingValue来实现的,其中name用来从application.properties中读取某个属性值,如果该值为空,则返回false;如果值不为空,则将该值与havingValue指定的值进行比较,如果一样则返回true;否则返回false。如果返回值为false,则该configuration不生效;为true则生效。

https://blog.csdn.net/dalangzhonghangxing/article/details/78420057

* @ConditionalOnClass

该注解的参数对应的类必须存在,否则不解析该注解修饰的配置类

```
@Configuration
@ConditionalOnClass({Gson.class})
public class GsonAutoConfiguration {
public GsonAutoConfiguration() {
}

@Bean
@ConditionalOnMissingBean
public Gson gson() {
return new Gson();
}
}

```

* @ConditionalOnMisssingClass({ApplicationManager.class})

如果存在它修饰的类的bean,则不需要再创建这个bean;


* @ConditionOnMissingBean(name = "example")

表示如果name为“example”的bean存在,该注解修饰的代码块不执行。
1 change: 1 addition & 0 deletions basic-knowledge/springboot.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
* [java autoConfig配置](springboot-javaConfig.md)
* [代码热部署](springboot-hot-reload.md)
* [eclipse中如何跑spring boot的单元测试](springboot-unit.md)
* [异步调用Async](https://blog.csdn.net/v2sking/article/details/72795742)


### 二、资料集
Expand Down
1 change: 1 addition & 0 deletions basic-knowledge/springcloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ spring --> spring boot --> spring cloud
* 创建接口并用注解来配置它即可完成对Web服务接口的绑定。它具备可插拔的注解支持,包括Feign注解、JAX-RS注解。它也支持可插拔的编码器和解码器。Spring Cloud Feign还扩展了对Spring MVC注解的支持,同时还整合了Ribbon和Eureka来提供均衡负载的HTTP客户端实现。
* config
* 分布式配置管理
* [Spring Cloud Config采用数据库存储配置内容](https://mp.weixin.qq.com/s/cQ7iSBv9YZZMH95Zot7JLg)
* 配置参数
* [SpringCloud Eureka参数配置项详解](http://www.cnblogs.com/chry/p/7992885.html)

Expand Down
10 changes: 6 additions & 4 deletions data-base/database-connection-pool.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

---

#### SQL生命周期:
### SQL生命周期:

1. 应用服务器与数据库服务器建立一个连接
2. 数据库进程拿到请求sql
Expand All @@ -20,7 +20,7 @@



#### 推荐开源框架:
### 推荐开源框架:

Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser。

Expand Down Expand Up @@ -71,8 +71,10 @@ Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接
http://tool.oschina.net/apidocs/apidoc?api=druid0.26


**参考资料:**
### 其它

http://www.iteye.com/magazines/90
* [数据库连接池极简教程](https://mp.weixin.qq.com/s/tLysIX9KChNioJ-fMMimxw)

* [阿里巴巴开源项目 Druid 负责人温少访谈](http://www.iteye.com/magazines/90)


1 change: 1 addition & 0 deletions data-base/transaction.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
* [微服务架构下处理分布式事务的典型方案](https://mp.weixin.qq.com/s/RKwvfKXIHrrkuCqOGZ4CPw)
* [解决分布式系统事务一致性的几种方案对比](https://mp.weixin.qq.com/s/kzmTKKH-t6tpJ97fa6TYPg)
* [多库多事务降低数据不一致概率](https://mp.weixin.qq.com/s/FvB-hOBT13SMfZko5iagAg)
* [蚂蚁技术专家:一篇文章带你学习分布式事务](https://mp.weixin.qq.com/s/abjDjGGz5RUoCNCdnoxOjQ)

#### 开源框架

Expand Down
2 changes: 1 addition & 1 deletion middle-software/Hbase.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* [笔记](Hbase-note1.md)
* [Hbase安装](http://blog.csdn.net/itomge/article/details/9970833)
* 《HBase企业应用开发实战》
* [Hbase官网](http://hbase.apache.org/)
* [Hbase官网](https://hbase.apache.org/book.html)
* [Hbase官方文档中文版](http://abloz.com/hbase/book.html)
* [Hbase视频课程](https://edu.aliyun.com/course/73/learn?spm=0.0.0.0.k89hlH#lesson/978)
* [HBase 深入浅出](https://www.ibm.com/developerworks/cn/analytics/library/ba-cn-bigdata-hbase/index.html)
Expand Down
3 changes: 2 additions & 1 deletion middle-software/big-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@
* [Oceanbase](https://github.com/alibaba/oceanbase/tree/master/oceanbase_0.4)
* [Oozie]()
* [kettle]()
* [ApacheBeam](http://blog.csdn.net/dashenghuahua/article/details/53462604)
* [ApacheBeam](http://blog.csdn.net/dashenghuahua/article/details/53462604)

18 changes: 10 additions & 8 deletions middle-software/dubbo.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

---

#### 附录
### 附录

* [源码](https://github.com/alibaba/dubbo)

Expand All @@ -20,7 +20,15 @@

* [dubbo monitor](https://www.cnblogs.com/xbq8080/p/6813579.html)

#### 前沿
### 资料

* [http://www.oschina.net/search?q=dubbo&scope=project&fromerr=OSwWxF3l](http://www.oschina.net/search?q=dubbo&scope=project&fromerr=OSwWxF3l)
* [http://dubbo.io/User+Guide-zh.htm](http://dubbo.io/User+Guide-zh.htm)
* [《可伸缩服务架构--框架与中间件》(第8章 Dubbo实战及源码分析)]()



### 前沿

* [独家专访阿里高级技术专家北纬:Dubbo开源重启半年来的快意江湖](https://mp.weixin.qq.com/s/2AQMrV7hFTJt3SpXONT_uQ)

Expand Down Expand Up @@ -165,9 +173,3 @@ Dubbo 应用使用 ZooKeeper 作为注册中心,启动时发生该异常。
问题根源:QuorumMaj类未定义单个Map参数的构造函数,而EnsembleTracker类却引用了它
```

### 参考资料

[http://www.oschina.net/search?q=dubbo&scope=project&fromerr=OSwWxF3l](http://www.oschina.net/search?q=dubbo&scope=project&fromerr=OSwWxF3l)


[http://dubbo.io/User+Guide-zh.htm](http://dubbo.io/User+Guide-zh.htm)
5 changes: 5 additions & 0 deletions middle-software/mq-compare.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## MQ框架性能比较
----


* [消息中间件选型分析](https://mp.weixin.qq.com/s/ad7jibTb5nTzh3nDQYKFeg)
Loading