大纲
反射
类的
加载、连接和初始化
类
加载器
使用反射生成并操作对象
本节习题
# Java 应用与开发 类
加载和反射
王晓东
wangxiaodong@ouc.edu.cn
中国海洋大学
December 24, 2018
 理解什么是反射机制,通过常见场景认识反射的作用。
2. 掌握类的
加载、连接和初始化概念。
3. 理解类
加载器及类
加载机制。
4. 掌握使用反射生成并操作对象的方法。
|大纲|反射|类的
加载、连接和初始化|类
加载器|使用反射生成并操作对象|本节习题|
|---|---|---|---|---|---|
|大纲||||||
|反射||||||
|类的
加载、连接和初始化||||||
|类
加载器||||||
|使用反射生成并操作对象||||||
反射 | 类的加载、连接和初始化 | 类加载器 | 使用反射生成并操作对象 | 本节习题 | | 接下来… |
| 反射 |
| 类的加载、连接和初始化 |
0 码力 |
46 页 |
714.40 KB
| 2 年前 3 IstioMeetup
服务网格数据平面热升级技术分享
ServiceMesh Data-Plane Hot-Upgrade
阿里云服务网格团队-史泽寰
## 目录 Catalog
## - 为什么需要服务网格数据面热升级
- 实现热升级
- 实践热升级
## 传统Sidecar升级方式的缺点
• 造成请求失败,影响业务质量
• 重启Pod导致业务容器也被重启,需要执行重新初始化
为什么需要服务网格数据面热升级 Why do we need Hot-Upgrade for ServiceMesh Data-Plane
## 理想的Sidecar升级
- 只替换/重启Sidecar
- 替换/重启过程中进/出不会出现请求失败,连接失败
• 易于运维,可以控制升级策略
## 目录 Catalog
- 为什么需要服务网格数据面热升级
- 实现热升级
- 实践热升级
## 实现热升级 Implement Implement Hot-Upgrade
## Envoy热重启
• 以Epoch + 1的方式启动新实例,触发热重启
• ListenSocket转移到新实例
旧实例进行排水,不再接受新的请求
- 排水结束后旧实例退出,热重启完成
References:
Primary
Secondary
(1) shutdown admin
(2) get listen sockets
0 码力 |
14 页 |
2.25 MB
| 2 年前 3 # Java 应用系统开发 ServletContext 和 Web 配置
王晓东
wangxiaodong@ouc.edu.cn
中国海洋大学
November 26, 2018

 0 码力 |
33 页 |
668.91 KB
| 2 年前 3 进阶篇:编写可维护的webpack 构建配置
05 | 进阶篇:webpack 构建速度和体积优化策略
06 | 原理篇:通过源码掌握webpack 打包原理
07 | 原理篇:编写 Loader 和插件
08 | 实战篇:React 全家桶 和webpack 开发商城项目
## ☐ ☐ ☐ ☐
## 扫码试看/订阅 《玩转webpack》
## 构建配置抽离成 npm 包的意义 包的意义
通用性
·业务开发者无需关注构建配置
·统一团队构建脚本
可维护性
·构建配置合理的拆分
·README 文档、ChangeLog 文档等
质量
·冒烟测试、单元测试、测试覆盖率
·持续集成
## 构建配置管理的可选方案
通过多个配置文件管理不同环境的构建,webpack --config 参数进行控制
将构建配置设计成一个库,比如:hjs-webpack、Neutrino、webpack-blocks webpack-blocks
抽成一个工具进行管理,比如:create-react-app, kyt, nwb
将所有的配置放在一个文件,通过 --env 参数控制分支选择
## 构建配置包设计
## 通过多个配置文件管理不同环境的 webpack 配置
·基础配置:webpack.base.js
·开发环境:webpack.dev.js
·生产环境:webpack.prod.js
·SSR环境:webpack 0 码力 |
30 页 |
5.38 MB
| 2 年前 3 连接超时、Load过高、内存溢出
手工书写多种配置,易出错、难管理
历史包袱:多个代理,缺乏平台型方案
’ alt=‘OCR图片’/>
Gaea特性
分库分表,兼容mycat、kingshard路由方案
Prepared Statements(分库分表)
读写分离,多个从实例负载均衡
多租户,租户之间软隔离
错误、慢sql指纹
配置热加载
连接池
使用TiDB sqlparser kingshard、vitess、tidb等优秀项目
团队Go经验比较丰富,也一直很喜欢用Go开发系统
’ alt=‘OCR图片’/>
配置热加载
动静分离
端口 etcd信息 log信息 会话参数
实例信息分库分表规则用户信息读写分离连接池配置
.
’ alt=‘OCR图片’/>
方案一
configAtomic atomic.Value
config, err := NewConfig(confType) NewConfig(confType)
config.Load()
p.configAtomic.Store(&configWrapper{config})
定义
加载/reload
c := p.configAtomic.Load()
if c == nil {
err = fmt.Errorf("invalid remote config instance")
0 码力 |
32 页 |
13.83 MB
| 1 月前 3 0 码力 |
100 页 |
3.98 MB
| 1 年前 3 BFE主要设计思想
· 转发模型优化
· 支持多租户
• 引入条件表达式,减少正则表达式使用
- 降低动态配置加载的难度
- 区分“常规配置”和“动态配置”
• 增强服务状态监控能力
• 向外展现大量内部的执行状态
- 将大存储功能转移到外部
- 加快启动速度
## 正则表达式 方案的问题
- 配置难以维护:正则表达式存在严重的可读性问题
- 性能存在隐患:有可能因编写不当引起严重的性能退化 ents/2/0/0/b/200b4c32f84e0faee885b686d91cf13f/p19_1.jpg)
## 配置管理
• BFE配置的分类
• 常规配置:.conf
• 动态配置: .data
## • 配置动态加载
• 外部触发,细粒度加载
写配置
func (t *ProductRuleTable) Update(conf productRuleConf) {
lock.Unlock()
}

读配置
func (t *ProductRuleTable) Search(product string) (*blockRuleList, bool) {
t.lock.RLock()
0 码力 |
26 页 |
1.78 MB
| 2 年前 3 0 码力 |
63 页 |
2.91 MB
| 1 年前 3 0 码力 |
1985 页 |
6.67 MB
| 1 年前 3
|