JNDI&RMI&LDAP介绍+log4j分析

JNDI

JNDI是java Naming and Directory Interfac即java命名与目录接口
Naming是命名服务,Director指目录服务。
通过调用JNDIAPI应用程序可以定位资源和其他程序对象。JNDIJava EE的重要部分,,JNDI可访问的现有的目录及服务有:JDBCLDAPRMIDNSNISCORBA

  • 命名服务
    对资源命名方便下次调用,Naming的资源要唯一,每一个资源绑定一个名字
  • 目录服务
    顾名思义,和计算机的文件系统很像,具体来说,dns就是一种目录服务

在实际使用时,在J2EE容器中配置JNDI参数,这个容器就是数据源,在使用时,直接通过数据源名称就可以调用
一个mysql的配置文件示例如图,数据源名称就是MySqlDS

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/lw</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>rootpassword</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
</local-tx-datasource>
</datasources>

在使用时

Context ctx=new InitialContext();
Object datasourceRef=ctx.lookup("java:MySqlDS"); //引用数据源
DataSource ds=(Datasource)datasourceRef;
conn=ds.getConnection();
/* 使用conn进行数据库SQL操作 */
......
c.close();

通过JNDI统一的接口,只需要配置好数据源,在使用时,只需要调用lookup方法,查询数据源名称就可以获得数据源,使用数据库,不需要考虑不同数据库的驱动、连接、调用等方式,如果想换一个数据库,只需要修改下数据源配置文件就可以了

RMI协议

RMI是remote method invoke即远程方法调用,可以实现从一个java虚拟机对象调用另一个虚拟机对象上的方法,这就要说到RPC,remote procedure call远程过程调用,这是一种技术思想而非一种协议,是一种通过网络从远程端请求服务的过程
RPC
而RMI就是JAVA实现的RPC机制

常见的RPC框架

  • 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。
  • 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。
  • 通信框架:MINA 和 Netty。

RMI参考文章1

完整的RMI调用过程包括:注册服务->RMIServer->Client->接口->实现接口的类

一个demo

import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.util.concurrent.CountDownLatch;

public class RegServer {
    public static void main(String[] args) throws InterruptedException {
        try{
            Lo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值