首页 文章 精选 留言 我的

精选列表

搜索[数据库连接池],共10000篇文章
优秀的个人博客,低调大师

DataGrip 2019.2.2 发布,多引擎数据库环境

DataGrip 2019.2.2 发布了,更新内容如下: 特性 DBE-4499根据列名添加了 JOIN 完成 DBE-2640markdown 数据提取器与 DataGrip 捆绑 DBE-7315列的拖放变得更加智能:现在它添加了逗号 DBE-8239为 SQL 显示面包屑 DBE-5661,DBE-7960[PostgreSQL]改进了对分区表的支持。关键增强功能:分区表现在显示在主分区表下。 新版本还包含大量 bug 修复,详情可查看发布公告。

优秀的个人博客,低调大师

spring boot 与 内存数据库Hazelcast整合

前言 spring boot 在此就不多做介绍了,想来大家对他应该都不陌生了 Hazelcast 可能大家就毕竟陌生了: 简单易用 Hazelcast是用Java编写的,没有其他依赖关系。只需简单的把jar包引入项目的classpath即可创建集群。 无主从模式 与许多NoSQL解决方案不同,Hazelcast节点是点对点的。没有主从关系; 所有成员都存储相同数量的数据,并进行相等的处理,避免了单点故障。 弹性可扩展 Hazelcast旨在扩展成千上万的成员。新成员启动,将自动发现群集,并线性增加存储和处理能力。成员之间通过TCP保持连接和通讯。 读写快速高效 Hazelcast所有数据都存储在内存中,提供基于内存快速高效的读写能力。 PS:另外就是——根据基准测试,Hazelcast在获取数据方面比Redis快56%,在设置数据方面比Redis快44%。 用例 下面主要是讲讲springboot和Hazelcast的整合,并给出Hazelcast支持的数据类型MAP、List、Topic、Queue给出了使用实例。 整合配置: @Configuration public class HazelcastConfig { @Bean public Config config() { Config config = new Config(); GroupConfig gc=new GroupConfig(Const.HAZELCAST_NAME);//解决同网段下,不同库项目 config.setInstanceName("hazelcast-instance") .addMapConfig(new MapConfig().setName("configuration") .setMaxSizeConfig(new MaxSizeConfig(2000, MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE)) .setEvictionPolicy(EvictionPolicy.LRU).setTimeToLiveSeconds(-1)) .setGroupConfig(gc); return config; } @Bean public HazelcastInstance hazelcastInstance(Config config) { HazelcastInstance hzInstance = Hazelcast.newHazelcastInstance(config); //分布式map监听 IMap<Object, Object> imap = hzInstance.getMap(Const.MAP_NAME); imap.addLocalEntryListener(new IMapListener()); //拦截器(没写内容) imap.addInterceptor(new IMapInterceptor()); //发布/订阅模式 ITopic<String> topic = hzInstance.getTopic(Const.TOPIC_NAME); topic.addMessageListener(new TopicListener()); return hzInstance; } } map数据变化的拦截器实现: public class IMapInterceptor implements MapInterceptor{ private static final long serialVersionUID = 3556808830046436753L; @Override public Object interceptGet(Object value) { // TODO Auto-generated method stub return null; } @Override public void afterGet(Object value) { // TODO Auto-generated method stub } @Override public Object interceptPut(Object oldValue, Object newValue) { // TODO Auto-generated method stub return null; } @Override public void afterPut(Object value) { // TODO Auto-generated method stub } @Override public Object interceptRemove(Object removedValue) { // TODO Auto-generated method stub return null; } @Override public void afterRemove(Object oldValue) { // TODO Auto-generated method stub } } map数据变化的监听器实现: public class IMapListener implements EntryAddedListener<String, String>{ @Override public void entryAdded(EntryEvent<String, String> event) { // TODO Auto-generated method stub //干你监听的操作 System.out.println("MAP分布式监听:"+event.getValue()); } } Topic订阅接收消息: public class TopicListener implements MessageListener<String> { @Override public void onMessage(Message<String> message) { String msg=message.getMessageObject(); System.out.println("收到Topic消息:"+msg); } } List和Queue的实例 这两个我就没写在实际代码中,在test写了2个main方法 //生产数据 public class HazelcastGetStartServerMaster { public static void main(String[] args) { // 创建一个 hazelcastInstance实例 HazelcastInstance instance = Hazelcast.newHazelcastInstance(); // 创建集群Map IList<Object> clusterMap = instance.getList("myList"); clusterMap.add("list0"); clusterMap.add("list1"); // 创建集群Queue Queue<String> clusterQueue = instance.getQueue("MyQueue"); clusterQueue.offer("Hello hazelcast!"); clusterQueue.offer("Hello hazelcast queue!"); } } //消费数据 public class HazelcastGetStartServerSlave { public static void main(String[] args) { //创建一个 hazelcastInstance实例 HazelcastInstance instance = Hazelcast.newHazelcastInstance(); IList<Object> clusterList = instance.getList("myList"); Queue<String> clusterQueue = instance.getQueue("MyQueue"); System.out.println("Map Value:" + clusterList.get(1)); System.out.println("Queue Size :" + clusterQueue.size()); System.out.println("Queue Value 1:" + clusterQueue.poll()); System.out.println("Queue Value 2:" + clusterQueue.poll()); System.out.println("Queue Size :" + clusterQueue.size()); } } 这个时候启动项目显示如下: 当前只有一个节点,端口为:5701 这个时候写个main方法测试分布式map: public class IMapTest { public static void main(String[] args) { Config config = new Config(); GroupConfig gc=new GroupConfig(Const.HAZELCAST_NAME); config.setGroupConfig(gc); HazelcastInstance hzInstance = Hazelcast.newHazelcastInstance(config); IMap<String, String> imap = hzInstance.getMap(Const.MAP_NAME); imap.put("myKey", "myObject"); } } 运行main方法发现原来启动的项目找那个Member变成了2个,因为main方法中也启动了一个Hazelcast实例加入了集群中。imap的拦截器,我监听器都生效了。并获取到了main方法中加的数据,因为Hazelcast是集群的,数据可以在许多应用程序实例之间共享。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册