阅读更多

0顶
0踩

数据库
Oceanus 是 58 同城数据库中间件。

关于DB中间件

在DB存储需求中,尽管业务不同,技术难点还是类似的,开源世界有很多DB中间件,解决方案也以通用方案为主,满足业务需要为前提,支持各种类型的需求。

Oceanus致力于打造一个功能简单、可依赖、易于上手、易于扩展、易于集成的解决方案,甚至是平台化系统。拥抱开源,提供各类插件机制集成其他开源项目,新手可以在几分钟内上手编程,分库分表逻辑不再与业务紧密耦合,扩容有标准模式,减少意外错误的发生。

Oceanus内部名词定义
  • datanode:数据源节点。为一个数据源命名,配置链接属性、报警实现
  • namenode:数据源的簇。为一组数据源命名,指定这组数据源的负载方式、访问模式、权重
  • table:映射表。匹配解析sql中的table名称,命中table标签的name属性值后,会执行约定的路由逻辑
  • bean:实体。由其他标签引用,实体类必须有无参的构造函数
  • tracker:监控埋点。涉及到计算和IO的功能点都有监控点,自定义一个埋点实现类,当功能耗时超出预期时会执行其中的回调函数,便于监控和优化系统

为什么说Oceanus是非常易用的

Oceanus在设计时非常注重使用者的评价,配置结构近乎于和使用者交流约定业务规则,便于不同的人看同一套配置,互相理解流程。当配置文件编写 完成后,编码就变得更加简单,只调用Oceanus客户端的几个方法就可以实现数据库操作,不再关心HA、报警、负载均衡、性能监控等问题。良好的用户视 觉减少了分库分表在业务场景中的耦合度,对于编码者就像只对一个table操作,Oceanus负责进行sql解析、路由、sql重写。
如提交:    select * from user;

改写成:    select * from user0;
           select * from user1;
           select * from user2;
           select * from user3;

分发给不同的库(或者同库)执行,用户视觉如图:



开源集成

“接地气,拥抱开源” 是Oceanus的设计原则之一,可以很好的集成到mybatis和hibernate中,只要引用其中的插件,编写Oceanus配置文件,然后改写各 自的DataSource实现或ConnectionProvider即可做到集成。这样既用到了熟悉的ORM,又借助Oceanus实现了分库分表等功 能。

待开发

不得不说Oceanus在设计上非常灵活,使得每一个细小的功能点都有极高的切入价值,比如Cache机制、全局的ID生成规则、资源可视化监控等等,把其中某一个点做得足够好,都会为整体产品带来质的提升,简化实际生产环境中的配套系统研发维护成本。

托管地址:https://github.com/58code/Oceanus
  • 大小: 379.7 KB
来自: 58code
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • android app widget小部件

    里面是一套完整的列表显示及刷新的小部件,虽然没有后台请求,但是可以自己改造下

  • android appwidget 定时刷新,android – 如何定期更新小部件,比如每5秒后更新一次

    您可以在appwidget-provider中使用android:updatePeriodMillis属性.在Android开发者网站上查看Adding the AppWidgetProviderInfo Metadata.问题是,为了节省电池,你不能设置30分钟(1800000毫秒)以下的时间.设置所需的...

  • android自定义widget如何使用,Android 开发之实时更新 App Widget

    引言Android 开发之 App Widget 详解中说 updatePeriodMills 定义了 Widget 的刷新频率,但是出于节约用户电量的考虑,Android 系统默认最小更新周期是 30 分钟,也就是说:如果您的程序需要实时更新数据,设置这个...

  • android实现App活动定时自动跳转效果

    App的小功能点,很简单几十行代码就可以实现 主页面代码 ... import android.content.Intent; import android.os.Handler; import android.os.Message;...import android.widget.TextView; import com.b

  • android桌面widget怎么设置它大小与屏幕同宽啊,理解与应用Android桌面组件AppWidget...

    一、概念首先要区分widget和AppWidget这两个概念。1、Widgetwidget可以直译为小部件,它在Android中代表视图的概念,如TextView、Button、EditText等widget视图控件,及LinearLayout等视图布局。2、...

  • android appwidget 定时刷新,Android 桌面Widget开发要点解析(时间日期Widget)

    最近需要编写一个日期时间的桌面Widget用来关联日历程序,以前很少写桌面Widget。对这方面技术不是很熟悉,今天花时间重新整理了一下,顺便把编写一个简单时间日期程序过程记录下来。桌面Widget其实就是一个显示一些...

  • android widgets机制,GitHub - GodDavide/AppWidget: 最详尽的Android AppWidget Demo!可实现多控件展示、不同的刷新机制(定时刷新,开机刷...

    AppWidget###关于AppWidget的那些事... ...###详尽的AppWidget Demo####因为项目的要求,最近制作了一个相对比较复杂的AppWidget,因为其复杂性及要求的特殊性,####所以,必须深入的了解AppWidget。###项目原图:##...

  • android AppWidget的使用以及利用Service TimerTask实现widget的定时更新

    在资源文件下的xml文件夹中建立文件example_appwidget_info.xml: appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout="@layout/process_widget

  • 拜雨学Android之AppWidget

    onUpdate() 该方法会按着用户设置的更新频率定时调用,在首次创建AppWidget时候也会调用,主要在这里更新布局 onDeleted() 在用户移除桌面小组件时候调用 onEnabled() 当用户在桌面小组件创建时候调用,可以初始化一些...

  • Android App Widget桌面小部件开发实践

    App Widget桌面小部件已经被很多APP所使用,在日常的生活中也有很多人在使用,最常见的就是时钟、天气、日历、记事本这样的小工具,但是不少主流APP也提供了一些快捷功能的小部件,例如音乐快捷播放、代办事项、课程...

  • android AppWidget的使用以及利用TimerTask实现widget的定时更新

    第一步:首先是Widget的定义声明: 在资源文件下的xml目录中建立文件example_appwidget_info.xml: <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:a...

  • Android的Widget的定时刷新

    Android的桌面小图标Widget有时候需要定时的刷新,而且updatePeriodMillis属性设置的时间是建议是1个小时。这个时间对有些功能就太长时间了。在开发者文档上面有建议用AlarmManager 下面就是我写的一个小的Demo,让...

  • Android-Android桌面小部件widget日签Or日历可作为桌面日历

    Android 桌面小部件(widget)日签 ,展示农历阳历日期,一年进度,定时随机诗句

  • Android实现widget定时更新

    在开发Android的widget时,第一个需要解决的问题就是怎么实现让widget定时更新,在查阅比较多的资料后,一般情况用Service在后台更新,废话不多说,贴代码如下: Widget: Java代码   public class...

  • android view如何更新,android – 如何使用RemoteView更新通知?

    以下是通过RemoteView更新通知的详细示例(此示例发生在扩展服务的类中,您可以在活动中使用它,BroadcastReceiver和其他Android组件):private static final int NOTIF_ID = 1234;private NotificationCompat....

  • 《基于YOLOv8的八段锦练习指导系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

  • 大语言模型教育应用中的知识冲突挑战与应对策略

    内容概要:本文详细探讨了大语言模型(LLMs)在教育应用中遇到的知识冲突问题,包括概念定义、事实陈述和逻辑推理层面的认知不一致性。文章分析了知识冲突的技术成因,如训练数据噪声、参数化知识表示的局限、推理机制的缺陷、模型架构的不足及外部知识的偏差,并探讨了这些因素对教育应用的深远影响。文中提出了多维度的解决路径,如通过数据增强优化知识表示、利用提示强化上下文连贯、开发量规完善模型评估等。此外,文章从社会文化的宏观视角剖析了知识冲突的外部驱动因素,探讨如何在多元异质、动态演进的社会建构语境中构建开放进取、兼容融通的智能教育应用体系。 适合人群:从事教育技术研究的学者、教育工作者、人工智能研究人员和技术开发者。 使用场景及目标:①帮助教育工作者理解大语言模型在教育应用中的局限性;②为技术人员提供优化大语言模型教育应用的具体策略;③促进教育人工智能技术的可靠性、适应性和普及性提升。 其他说明:文章强调了知识冲突的有效化解不仅能够提升大语言模型在教育场景中的应用价值,还将为人工智能在更广泛领域的可持续发展奠定坚实基础。

Global site tag (gtag.js) - Google Analytics