渠道平台README.MD

(消费者)服务启动过程中会去Zookeeper获取生产者列表,缓存到本地。
当生产者有下线或异常链接不上的时候,Zookeeper会推送事件通知消费者动态清理本地缓存


1 Previous operation has not finished; run 'cleanup' if it was interrupted
2   为了方便命令行执行,将sqlite3.exe放到svn 项目的主目录下,和.svn目录同级下。
3 sqlite3 .svn/wc.db "select * from work_queue"
4 sqlite3 .svn/wc.db "delete from work_queue". 把队列清空
5 之后项目目录被锁:直接在eclipse中 项目右键 team  - 清理(cleanup)
6 直接找到该项目右键TortoiseSVN--->Clean up...



系统维护目标:致力于提供可维护性和可扩展性上的复用程度

设计原则:
1、多用组合,少用继承
2、为了交互对象之间的松耦合设计而努力
3、找出程序中会变化的方面,然后将其和固定不变的方面相分离
4、针对接口编程,不针对实现编程
5、类应该对扩展开放,对修改关闭


幂等:在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,
           是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。
           

Linux相关命令的使用:           
find  -name 1.json|xargs -i -t cp {} /app/bin

dubbo工程README.MD

1、dubbo应用:服务启动
(1)、dubbo默认加载META-INF/spring目录下的所有spring配置(dubbo官方文档-服务容器)java com.alibaba.dubbo.container.Main
(2)、配置dubbo.properties指明加载文件:dubbo.spring.config=
2、在ifa-orm包中(1)、ifa_orm_ibatis_dal.xml中指明sqlMapClientFactoryBean的mappingLocation的加载路径是:classpath*:/sqlmap/**/*SqlMap.xml
             (2)、数据库的路由规则加载:com.alibaba.cobar.client.router.config.DefaultCobarClientInternalRouterXmlFactoryBean的
                  congfigLocations=classpath:META-INF/routing/*-rules.xml
3、项目加载的配置文件:
(1)、ifa-web_normal.xml
ifa-web_jdbc.xml, //ifa_mail_common.xml
ifa-web_min.xml,ifa-aop_spring_aop.xml,ifa-tx_jdbc_dal.xml
ifa-core_base.xml"
ifa_message_resource.xml"
ifa-core_event_async.xml"
ifa-exception_app.xml"
ifa-log_common.xml"
ifa_web_base.xml"
(2)、ifa_datasource_mysql_dal.xml
(3)、ifa_orm_ibatis_mysql_c3p0_dal.xml


Cobar 解决的问题

分布式:Cobar 的分布式主要是通过将表放入不同的库来实现:
    Cobar 支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分
    Cobar 也支持将不同的表放入不同的库
    多数情况下,用户会将以上两种方式混合使用
HA:在用户配置了 MySQL 心跳的情况下,Cobar 可以自动向后端连接的 MySQL 发送心跳,判断 MySQL 运行状
况,一旦运行出现异常,Cobar 可以自动切换到备机工作。但需要强调的是:

    Cobar 的主备切换有两种触发方式,一种是用户手动触发,一种是 Cobar 的心跳语句检测到异常后自动触发。那么,当心跳检测到主机异常,切换到备机,如果主机恢复了,需要用户手动切回主机工作,Cobar 不会在主机恢复时自动切换回主机,除非备机的心跳也返回异常
    Cobar 只检查 MySQL 主备异常,不关心主备之间的数据同步,因此用户需要在使用 Cobar 之前在 MySQL 主备上配置双向同步
功能约束
    不支持跨库情况下的 join、分页、排序、子查询操作
    SET 语句执行会被忽略,事务和字符集设置除外
    分库情况下,insert 语句必须包含拆分字段列名
    分库情况下,update 语句不能更新拆分字段的值
    不支持 SAVEPOINT 操作
    暂时只支持 MySQL 数据节点
    使用 JDBC 时,不支持 rewriteBatchedStatements=true 参数设置(默认为 false)
    使用 JDBC 时,不支持 useServerPrepStmts=true 参数设置(默认为 false)
    使用 JDBC 时,BLOB, BINARY, VARBINARY 字段不能使用 setBlob() 或 setBinaryStream() 方法设置参数

Cobar 组件
    Driver:MySQL JDBC 驱动的封装,实现对 Cobar Server 的负载均衡与高可用支持
    Server:请求处理(SQL 解析、路由、结果集合并)、集群
    Manager:Server 监控的 Web 应用
结论
    解决了大数据量下的透明水平分表
    必须使用封装过的 MySQL 驱动包 Cobar Driver,无框架要求
    后端对 MySQL 是直接面向二进制协议的
    基于 LL(2) 手写的 SQL 解析器
    支持弱一致性事务(多库并行执行/提交)
    不支持跨库 join、分页、排序、子查询、读写分离
    在 MySQL 实例上没有 agent
    MySQL 主从数据同步使用 MySQL 解决方案
    主异常时切换到从后主恢复,没有 failback,只能手动切换回主
    后端对 MySQL 有连接池
    支持跨地域

    
    
    
order-水平垂直混合    
水平分库,根据字段值,将数据不同的行放到不同的数据库中。(例如:tbl_nvhl_policy)
垂直分库,不同业务表放到不同的数据库分片中(例如:tbl_member_cha)
分库规则相关信息:ifa_datasource_mysql_dal.xml中配置个各个库的标识 如:partition1,partition2
            ifa_orm_ibatis_mysql_dal.xml配置了支持的数据库路由规则
                                    规则:id%jdbc.db_length=1?0(目前仅支持mod算法:mod.apply com.alibaba.cobar.client.router.rules.support.ModFunction)

猜你喜欢

转载自www.cnblogs.com/nihaofenghao/p/8929892.html